package com.briup.cms.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 这些配置的属性，都可以在yml文件中进行对应的配置，即使不配置也会有如下默认值
 * @author wood
 */
@ConfigurationProperties(prefix = "briup.config")
@Component
@Data
public class ConfigProperties {

    // JWT拦截器和swagger统一认证路径，它们俩个配置的路径要一致
    private String[] authPath = {"/auth/**"};

    // SwaggerConfig中，swagger需要扫描的controller所在包
    private String swaggerScanControllerPackage = "com.briup.*.web.controller";

    // SwaggerConfig中，swagger的title属性
    private String swaggerTitle = "briup中台管理系统";

    // SwaggerConfig中，swagger的description属性
    private String swaggerDescription = "杰普软件科技有限公司，http://www.briup.com";

    // SwaggerConfig中，swagger的url属性
    private String swaggerUrl = "http://www.briup.com";

    // SwaggerConfig中，swagger的version属性
    private String swaggerVersion = "1.0";

    // WebConfig中，全局接收日期参数的格式
    // 注意，java对象转为json格式返回时，Date日期的格式在application.yml中spring.jackson.date-format属性中配置
    private String stringParamToDateFormat = "yyyy-MM-dd HH:mm:ss";

    // 跨域设置相关参数及默认值
    // 允许跨域方法的资源路径
    private String corsMapping = "/**";
    // 允许跨域访问的客户端IP
    private String[] corsAllowedOrigins = {"*"};
    // 允许跨域访问的请求方式
    private String[] corsAllowedMethods = {"GET","POST","PUT","OPTIONS","DELETE","PATCH"};
    // 允许跨域访问的请求头字段
    private String[] corsAllowedHeaders = {"*"};
    // 是否允许携带cookie凭证
    private Boolean corsAllowCredentials = false;
    // 设置缓存OPTIONS预检测结果的时间
    // 这样在一定时间内，只有第一次发送请求的时候需要额外发送预检测请求（OPTIONS），后面的就直接发送请求了
    private int corsMaxAge = 3600;

    // 本地上传时 使用的本地本地
    private String localUploadBastPath = "D:/briup/upload/";

    // 当前主机的ip地址，本地上传后使用该ip访问中存储的文件或者图片
    private String currentIp = "127.0.0.1";

    private String fastdfsIp = "xxx.xxx.xxx.xxx";

    // fastdfs上传时 使用的groupName，安装配置fastdfs时候指定的组名
    private String fastdfsUploadGroupName = "group1";

    // fastdfs上传时 使用的基础路径，将来通过这个 地址+上传后返回的名字 来访问该文件或者图片
    private String fastdfsUploadBastPath = "http://xxx.xxx.xxx.xxx:8888/";

}
